home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / ditroff / RCS / tmac.s,v < prev    next >
Encoding:
Text File  |  1991-06-09  |  14.3 KB  |  1,040 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    shirriff:1.2; strict;
  6. comment  @| @;
  7.  
  8.  
  9. 1.2
  10. date     88.12.21.08.35.20;  author ouster;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     88.12.18.13.55.03;  author ouster;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24. 1.2
  25. log
  26. @Switch to Sprite library location.
  27. @
  28. text
  29. @.ds // /sprite/lib/ditroff/
  30. .    \" IZ - initialize (before text begins)
  31. .de IZ
  32. .nr FM 1i
  33. .nr YY -\\n(FMu
  34. .nr XX 0 1
  35. .nr IP 0
  36. .nr PI 5n
  37. .nr QI 5n
  38. .nr FI 2n
  39. .nr I0 \\n(PIu
  40. .if n .nr PD 1v
  41. .if t .nr PD .3v
  42. .if n .nr DD 1v
  43. .if t .nr DD .5v
  44. .nr PS 10
  45. .nr VS 12
  46. .ps \\n(PS
  47. .vs \\n(VSp
  48. .nr ML 3v
  49. .nr IR 0
  50. .nr TB 0
  51. .nr SJ \\n(.j
  52. .nr PO \\n(.o
  53. .nr LL 6i
  54. .ll \\n(LLu
  55. .lt 6i
  56. .ev 1
  57. .nr FL 5.5i
  58. .ll \\n(FLu
  59. .ps 8
  60. .vs 10p
  61. .ev
  62. .ds CH - \\\\n(PN -
  63. .if n .ds CF \\*(DY
  64. .wh 0 NP
  65. .wh -\\n(FMu FO
  66. .ch FO 16i
  67. .wh -\\n(FMu FX
  68. .ch FO -\\n(FMu
  69. .wh -\\n(FMu/2u BT
  70. ..
  71. .    \" RT - reset (at new paragraph)
  72. .de RT
  73. .if !\\n(1T .BG
  74. .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
  75. .if \\n(TM .ls 2
  76. .ce 0
  77. .ul 0
  78. .if \\n(QP \{\
  79. .    ll +\\n(QIu
  80. .    in -\\n(QIu
  81. .    nr QP -1
  82. .\}
  83. .if \\n(NX<=1 .if !\\n(AJ .ll \\n(LLu
  84. .if !\\n(IF \{\
  85. .    ps \\n(PS
  86. .    if \\n(VS>=40 .vs \\n(VSu
  87. .    if \\n(VS<=39 .vs \\n(VSp
  88. .\}
  89. .if !\\n(IP .nr I0 \\n(PIu
  90. .if \\n(IP \{\
  91. .    in -\\n(I\\n(IRu
  92. .    nr IP -1
  93. .\}
  94. .ft 1
  95. .TA
  96. .fi
  97. ..
  98. .    \" TA - set default tabs
  99. .de TA
  100. .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n
  101. .if t .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n
  102. ..
  103. .    \" BG - begin (at first paragraph)
  104. .de BG
  105. .br
  106. .nr YE 1
  107. .di
  108. .ce 0
  109. .nr KI 0
  110. .hy 14
  111. .nr 1T 1
  112. .S\\n(ST
  113. .rm S0 S1 S2 SY TX AX WT RP
  114. .\"redefs
  115. .de TL
  116. .ft 3
  117. .ce 99
  118. .sp
  119. .LG
  120. \\..
  121. .de AU
  122. .ft 2
  123. .if n .ul 0
  124. .ce 99
  125. .sp
  126. .NL
  127. \\..
  128. .de AI
  129. .ft 1
  130. .if n .ul 0
  131. .ce 99
  132. .if n .sp
  133. .if t .sp .5
  134. .NL
  135. \\..
  136. .RA
  137. .rn FJ FS
  138. .rn FK FE
  139. .nf
  140. .ev 1
  141. .ps \\n(PS-2
  142. .vs \\n(.s+2p
  143. .ev
  144. .if !\\n(KG .nr FP 0
  145. .nr KG 0
  146. .if \\n(FP \{\
  147. .    FS
  148. .    FG
  149. .    FE
  150. .\}
  151. .br
  152. .if \\n(TV .if n .sp 2
  153. .if \\n(TV .if t .sp 1
  154. .fi
  155. .ll \\n(LLu
  156. ..
  157. .    \" RA - redefine abstract
  158. .de RA
  159. .de AB
  160. .br
  161. .if !\\n(1T .BG
  162. .ce
  163. .sp
  164. .if !\\n(.$ ABSTRACT
  165. .if \\n(.$ .if !\\$1no \\$1
  166. .if !\\n(.$ .sp
  167. .if \\n(.$ .if !\\$1no .sp
  168. .sp
  169. .nr AJ 1
  170. .in +\\n(.lu/12u
  171. .ll -\\n(.lu/12u
  172. .RT
  173. .if \\n(TM .ls 1
  174. \\..
  175. .de AE
  176. .nr AJ 0
  177. .br
  178. .in 0
  179. .ll \\n(LLu
  180. .if \\n(VS>=40 .vs \\n(VSu
  181. .if \\n(VS<=39 .vs \\n(VSp
  182. .if \\n(TM .ls 2
  183. \\..
  184. ..
  185. .    \" RP - released paper format
  186. .de RP
  187. .nr ST 2
  188. .if \\$1no .nr ST 1
  189. .pn 0
  190. .br
  191. ..
  192. .    \" TL - source file for cover sheet
  193. .de TL
  194. .rn TL @@T
  195. .so \*(//s.cov
  196. .TL
  197. .rm @@T
  198. ..
  199. .    \" PP - regular paragraph
  200. .de PP
  201. .RT
  202. .if \\n(1T .sp \\n(PDu
  203. .ne 1.1
  204. .ti +\\n(PIu
  205. ..
  206. .    \" LP - left paragraph
  207. .de LP
  208. .RT
  209. .if \\n(1T .sp \\n(PDu
  210. .ne 1.1
  211. .ti \\n(.iu
  212. ..
  213. .    \" IP - indented paragraph
  214. .de IP
  215. .RT
  216. .if \\n(1T .sp \\n(PDu
  217. .ne 1.1
  218. .if !\\n(IP .nr IP +1
  219. .if \\n(.$-1 .nr I\\n(IR \\$2n
  220. .in +\\n(I\\n(IRu
  221. .ta \\n(I\\n(IRu
  222. .if \\n(.$ \{\
  223. .ds HT \&\\$1
  224. .ti -\\n(I\\n(IRu
  225. \\*(HT\t\c
  226. .if \w'\\*(HT'u>(\\n(I\\n(IRu+1n) .br
  227. .\}
  228. ..
  229. .    \" XP - exdented paragraph
  230. .de XP
  231. .RT
  232. .if \\n(1T .sp \\n(PDu
  233. .ne 1.1
  234. .if !\\n(IP .nr IP +1
  235. .in +\\n(I\\n(IRu
  236. .ti -\\n(I\\n(IRu
  237. ..
  238. .    \" QP - quote paragraph
  239. .de QP
  240. .ti \\n(.iu
  241. .RT
  242. .if \\n(1T .sp \\n(PDu
  243. .ne 1.1
  244. .nr QP 1
  245. .in +\\n(QIu
  246. .ll -\\n(QIu
  247. .ti \\n(.iu
  248. .if \\n(TM .ls 1
  249. ..
  250. .    \" SH - section header
  251. .de SH
  252. .ti \\n(.iu
  253. .RT
  254. .if \\n(1T .sp
  255. .RT
  256. .ne 3.1
  257. .B
  258. ..
  259. .    \" NH - numbered header
  260. .de NH
  261. .SH
  262. .nr NS \\$1
  263. .if !\\n(.$ .nr NS 1
  264. .if !\\n(NS .nr NS 1
  265. .nr H\\n(NS +1
  266. .if !\\n(NS-4 .nr H5 0
  267. .if !\\n(NS-3 .nr H4 0
  268. .if !\\n(NS-2 .nr H3 0
  269. .if !\\n(NS-1 .nr H2 0
  270. .if !\\$1 .if \\n(.$ .nr H1 1
  271. .if \\$1S \{\
  272. .    nr NS \\n(.$-1
  273. .    nr H1 \\$2
  274. .    nr H2 \\$3
  275. .    nr H3 \\$4
  276. .    nr H4 \\$5
  277. .    nr H5 \\$6
  278. .\}
  279. .ds SN \\n(H1.
  280. .if \\n(NS-1 .as SN \\n(H2.
  281. .if \\n(NS-2 .as SN \\n(H3.
  282. .if \\n(NS-3 .as SN \\n(H4.
  283. .if \\n(NS-4 .as SN \\n(H5.
  284. \\*(SN
  285. ..
  286. .    \" DS - display with keep (L=left I=indent C=center B=block)
  287. .de DS
  288. .KS
  289. .nf
  290. .\\$1D \\$2 \\$1
  291. .ft 1
  292. .ps \\n(PS
  293. .if \\n(VS>=40 .vs \\n(VSu
  294. .if \\n(VS<=39 .vs \\n(VSp
  295. ..
  296. .de D
  297. .ID \\$1
  298. ..
  299. .    \" ID - indented display with no keep
  300. .de ID
  301. .XD
  302. .if t .in +.5i
  303. .if n .in +8
  304. .if \\n(.$ .if !\\$1I .if !\\$1 \{\
  305. .    in \\n(OIu
  306. .    in +\\$1n
  307. .\}
  308. ..
  309. .    \" LD - left display with no keep
  310. .de LD
  311. .XD
  312. ..
  313. .    \" CD - centered display with no keep
  314. .de CD
  315. .XD
  316. .ce 999
  317. ..
  318. .    \" XD - real display macro
  319. .de XD
  320. .nf
  321. .nr OI \\n(.i
  322. .sp \\n(DDu
  323. .if \\n(TM .ls 1
  324. ..
  325. .    \" DE - end display of any kind
  326. .de DE
  327. .ce 0
  328. .if \\n(BD .DF
  329. .nr BD 0
  330. .in \\n(OIu
  331. .KE
  332. .if \\n(TM .ls 2
  333. .sp \\n(DDu
  334. .fi
  335. ..
  336. .    \" BD - block display: center entire block
  337. .de BD
  338. .XD
  339. .nr BD 1
  340. .nf
  341. .in \\n(OIu
  342. .di DD
  343. ..
  344. .    \" DF - finish block display
  345. .de DF
  346. .di
  347. .if \\n(dl>\\n(BD .nr BD \\n(dl
  348. .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u
  349. .nr EI \\n(.l-\\n(.i
  350. .ta \\n(EIuR
  351. .DD
  352. .in \\n(OIu
  353. ..
  354. .    \" KS - begin regular keep
  355. .de KS
  356. .nr KN \\n(.u
  357. .if !\\n(IK .if !\\n(IF .KQ
  358. .nr IK +1
  359. ..
  360. .    \" KQ - real keep processor
  361. .de KQ
  362. .br
  363. .nr KI \\n(.i
  364. .ev 2
  365. .TA
  366. .br
  367. .in \\n(KIu
  368. .ps \\n(PS
  369. .if \\n(VS>=40 .vs \\n(VSu
  370. .if \\n(VS<=39 .vs \\n(VSp
  371. .ll \\n(LLu
  372. .lt \\n(LTu
  373. .if \\n(NX>1 .ll \\n(CWu
  374. .if \\n(NX>1 .lt \\n(CWu
  375. .di KK
  376. .nr TB 0
  377. ..
  378. .    \" KF - begin floating keep
  379. .de KF
  380. .nr KN \\n(.u
  381. .if !\\n(IK .FQ
  382. .nr IK +1
  383. ..
  384. .    \" FQ - real floating keep processor
  385. .de FQ
  386. .nr KI \\n(.i
  387. .ev 2
  388. .TA
  389. .br
  390. .in \\n(KIu
  391. .ps \\n(PS
  392. .if \\n(VS>=40 .vs \\n(VSu
  393. .if \\n(VS<=39 .vs \\n(VSp
  394. .ll \\n(LLu
  395. .lt \\n(LTu
  396. .if \\n(NX>1 .ll \\n(CWu
  397. .if \\n(NX>1 .lt \\n(CWu
  398. .di KK
  399. .nr TB 1
  400. ..
  401. .    \" KE - end keep
  402. .de KE
  403. .if \\n(IK .if !\\n(IK-1 .if !\\n(IF .RQ
  404. .if \\n(IK .nr IK -1
  405. ..
  406. .    \" RQ - real keep release
  407. .de RQ
  408. .br
  409. .di
  410. .nr NF 0
  411. .if \\n(dn-\\n(.t .nr NF 1
  412. .if \\n(TC .nr NF 1
  413. .if \\n(NF .if !\\n(TB .sp 200
  414. .if !\\n(NF .if \\n(TB .nr TB 0
  415. .nf
  416. .rs
  417. .nr TC 5
  418. .in 0
  419. .ls 1
  420. .if !\\n(TB \{\
  421. .    ev
  422. .    br
  423. .    ev 2
  424. .    KK
  425. .\}
  426. .ls
  427. .ce 0
  428. .if !\\n(TB .rm KK
  429. .if \\n(TB .da KJ
  430. .if \\n(TB \!.KD \\n(dn
  431. .if \\n(TB .KK
  432. .if \\n(TB .di
  433. .nr TC \\n(TB
  434. .if \\n(KN .fi
  435. .in
  436. .ev
  437. ..
  438. .    \" KD - keep redivert
  439. .de KD
  440. .nr KM 0
  441. .if \\n(.zKJ .nr KM 1
  442. .if \\n(KM \!.KD \\$1
  443. .if !\\n(KM .if \\n(.t<\\$1 .di KJ
  444. ..
  445. .    \" EM - end macro (process leftover keep)
  446. .de EM
  447. .br
  448. .if !\\n(TB .if "\*(.T"vp" .wh -1p CM
  449. .if \\n(TB \{\
  450. \&\c
  451. '    bp
  452. .    NP
  453. .    ch CM 160
  454. .\}
  455. ..
  456. .de XK
  457. .nr TD 1
  458. .nf
  459. .ls 1
  460. .in 0
  461. .rn KJ KL
  462. .KL
  463. .rm KL
  464. .if \\n(.zKJ .di
  465. .nr TB 0
  466. .if \\n(.zKJ .nr TB 1
  467. .br
  468. .in
  469. .ls
  470. .fi
  471. .nr TD 0
  472. ..
  473. .    \" NP - new page
  474. .de NP
  475. .if !\\n(LT .nr LT \\n(LLu
  476. .if \\n(FM+\\n(HM>=\\n(.p \{\
  477. .    tm HM + FM longer than page
  478. .    ab
  479. .\}
  480. .if "\*(.T"vp" .CM
  481. .if !\\n(HM .nr HM 1i
  482. .po \\n(POu
  483. .nr PF \\n(.f
  484. .nr PX \\n(.s
  485. .ft 1
  486. .ps \\n(PS
  487. 'sp \\n(HMu/2u
  488. .PT
  489. 'sp |\\n(HMu
  490. .HD    \"undefined
  491. .ps \\n(PX
  492. .ft \\n(PF
  493. .nr XX 0 1
  494. .nr YY 0-\\n(FMu
  495. .ch FO 16i
  496. .ch FX 17i
  497. .ch FO -\\n(FMu
  498. .ch FX \\n(.pu-\\n(FMu
  499. .if \\n(MF .FV
  500. .nr MF 0
  501. .mk
  502. .os
  503. .ev 1
  504. .if !\\n(TD .if \\n(TC<5 .XK
  505. .nr TC 0
  506. .ev
  507. .nr TQ \\n(.i
  508. .nr TK \\n(.u
  509. .if \\n(IT \{\
  510. .    in 0
  511. .    nf
  512. .    TT
  513. .    in \\n(TQu
  514. .    if \\n(TK .fi
  515. .\}
  516. .ns
  517. .mk #T
  518. ..
  519. .    \" PT - page titles
  520. .de PT
  521. .lt \\n(LTu
  522. .pc %
  523. .nr PN \\n%
  524. .nr PT \\n%
  525. .if \\n(P1 .nr PT 2
  526. .if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl \\*(LH\\*(CH\\*(RH
  527. .if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1
  528. .if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2
  529. .lt \\n(.lu
  530. ..
  531. .    \" OH - odd page header
  532. .de OH
  533. .nr OH 1
  534. .if !\\n(.$ .nr OH 0
  535. .ds O1 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  536. ..
  537. .    \" EH - even page header
  538. .de EH
  539. .nr EH 1
  540. .if !\\n(.$ .nr EH 0
  541. .ds E2 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  542. ..
  543. .    \" P1 - PT on 1st page
  544. .de P1
  545. .nr P1 1
  546. ..
  547. .    \" FO - footer
  548. .de FO
  549. .rn FO FZ
  550. .if \\n(IT .nr T. 1
  551. .if \\n(IT .if !\\n(FC .T# 1
  552. .if \\n(IT .br
  553. .nr FC +1
  554. .if \\n(NX<2 .nr WF 0
  555. .nr dn 0
  556. .if \\n(FC<=1 .if \\n(XX .XF
  557. .rn FZ FO
  558. .nr MF 0
  559. .if \\n(dn .nr MF 1
  560. .if !\\n(WF .nr YY 0-\\n(FMu
  561. .if !\\n(WF .ch FO \\n(YYu
  562. .if !\\n(dn .nr WF 0
  563. .if \\n(FC<=1 .if !\\n(XX \{\
  564. .    if \\n(NX>1 .RC
  565. .    if \\n(NX<2 'bp
  566. .\}
  567. .nr FC -1
  568. .if \\n(ML .ne \\n(MLu
  569. ..
  570. .    \" BT - bottom title
  571. .de BT
  572. .nr PF \\n(.f
  573. .nr PX \\n(.s
  574. .ft 1
  575. .ps \\n(PS
  576. .lt \\n(LTu
  577. .po \\n(POu
  578. .if \\n(TM .if \\n(CT \{\
  579. .    tl ''\\n(PN''
  580. .    nr CT 0
  581. .\}
  582. .if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF
  583. .if \\n% .if \\n(OF .if o .tl \\*(O3
  584. .if \\n% .if \\n(EF .if e .tl \\*(E4
  585. .ft \\n(PF
  586. .ps \\n(PX
  587. ..
  588. .    \" OF - odd page footer
  589. .de OF
  590. .nr OF 1
  591. .if !\\n(.$ .nr OF 0
  592. .ds O3 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  593. ..
  594. .    \" EF - even page footer
  595. .de EF
  596. .nr EF 1
  597. .if !\\n(.$ .nr EF 0
  598. .ds E4 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  599. ..
  600. .    \" 2C - double column
  601. .de 2C
  602. .MC
  603. ..
  604. .    \" 1C - single column
  605. .de 1C
  606. .MC \\n(LLu
  607. .hy 14
  608. ..
  609. .    \" MC - multiple columns, arg is col width
  610. .de MC
  611. .nr L1 \\n(LL*7/15
  612. .if \\n(.$ .nr L1 \\$1n
  613. .nr NQ \\n(LL/\\n(L1
  614. .if \\n(NQ<1 .nr NQ 1
  615. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  616. .if !\\n(1T \{\
  617. .    BG
  618. .    if n .sp 4
  619. .    if t .sp 2
  620. .\}
  621. .if !\\n(NX .nr NX 1
  622. .if !\\n(NX=\\n(NQ \{\
  623. .    RT
  624. .    if \\n(NX>1 .bp
  625. .    mk
  626. .    nr NC 1
  627. .    po \\n(POu
  628. .\}
  629. .if \\n(NQ>1 .hy 12
  630. .nr NX \\n(NQ
  631. .nr CW \\n(L1
  632. .ll \\n(CWu
  633. .nr FL \\n(CWu*11u/12u
  634. .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
  635. .nr RO \\n(CW+\\n(GW
  636. .ns
  637. ..
  638. .de RC
  639. .if \\n(NC>=\\n(NX .C2
  640. .if \\n(NC<\\n(NX .C1
  641. .nr NC \\n(ND
  642. ..
  643. .de C1
  644. .rt
  645. .po +\\n(ROu
  646. .nr ND \\n(NC+1
  647. .nr XX 0 1
  648. .if \\n(MF .FV
  649. .ch FX \\n(.pu-\\n(FMu
  650. .ev 1
  651. .if \\n(TB .XK
  652. .nr TC 0
  653. .ev
  654. .nr TQ \\n(.i
  655. .if \\n(IT .in 0
  656. .if \\n(IT .TT
  657. .if \\n(IT .in \\n(TQu
  658. .mk #T
  659. .ns
  660. ..
  661. .de C2
  662. .po \\n(POu
  663. 'bp
  664. .nr ND 1
  665. ..
  666. .    \" RS - right shift
  667. .de RS
  668. .nr IS \\n(IP
  669. .RT
  670. .nr IP \\n(IS
  671. .if \\n(IP .in +\\n(I\\n(IRu
  672. .nr IR +1
  673. .nr I\\n(IR \\n(PIu
  674. .in +\\n(I\\n(IRu
  675. ..
  676. .    \" RE - retreat left
  677. .de RE
  678. .nr IS \\n(IP
  679. .RT
  680. .nr IP \\n(IS
  681. .if \\n(IR .nr IR -1
  682. .if \\n(IP<=0 .in -\\n(I\\n(IRu
  683. ..
  684. .    \" CM - cut mark
  685. .de CM
  686. .po 0
  687. .lt 7.6i
  688. .ft 1
  689. .ps 10
  690. .vs 4p
  691. .tl '--''--'
  692. .po
  693. .vs
  694. .lt
  695. .ps
  696. .ft
  697. ..
  698. .    \" I - italic font
  699. .de I
  700. .nr PQ \\n(.f
  701. .if t .ft 2
  702. .ie \\$1 .if n .ul 999
  703. .el .if n .ul 1
  704. .if t .if !\\$1 \&\\$1\|\f\\n(PQ\\$2
  705. .if n .if \\n(.$=1 \&\\$1
  706. .if n .if \\n(.$>1 \&\\$1\c
  707. .if n .if \\n(.$>1 \&\\$2
  708. ..
  709. .    \" B - bold font
  710. .de B
  711. .nr PQ \\n(.f
  712. .if t .ft 3
  713. .ie \\$1 .if n .ul 999
  714. .el .if n .ul 1
  715. .if t .if !\\$1 \&\\$1\f\\n(PQ\\$2
  716. .if n .if \\n(.$=1 \&\\$1
  717. .if n .if \\n(.$>1 \&\\$1\c
  718. .if n .if \\n(.$>1 \&\\$2
  719. ..
  720. .    \" R - Roman font
  721. .de R
  722. .if n .ul 0
  723. .ft 1
  724. ..
  725. .    \" UL - underline in troff
  726. .de UL
  727. .if t \\$1\l'|0\(ul'\\$2
  728. .if n .I \\$1 \\$2
  729. ..
  730. .    \" SM - smaller
  731. .de SM
  732. .ps -2
  733. ..
  734. .    \" LG - larger
  735. .de LG
  736. .ps +2
  737. ..
  738. .    \" NL - normal
  739. .de NL
  740. .ps \\n(PS
  741. ..
  742. .    \" DA - force date
  743. .de DA
  744. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  745. .ds CF \\*(DY
  746. ..
  747. .    \" ND - no date or new date
  748. .de ND
  749. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  750. .rm CF
  751. ..
  752. .    \" \** - numbered footnote
  753. .ds * \\*([.\\n+*\\*(.]
  754. .    \" FJ - replaces FS after cover
  755. .de FJ
  756. 'ce 0
  757. .di
  758. .ev 1
  759. .ll \\n(FLu
  760. .da FF
  761. .br
  762. .if \\n(IF .tm Nested footnote
  763. .nr IF 1
  764. .if !\\n+(XX-1 .FA
  765. .if !\\n(MF .if !\\n(.$ .if \\n* .FP \\n*
  766. .if !\\n(MF .if \\n(.$ .FP \\$1 no
  767. ..
  768. .    \" FK - replaces FE after cover
  769. .de FK
  770. .br
  771. .in 0
  772. .nr IF 0
  773. .di
  774. .ev
  775. .if !\\n(XX-1 .nr dn +\\n(.v
  776. .nr YY -\\n(dn
  777. .if !\\n(NX .nr WF 1
  778. .if \\n(dl>\\n(CW .nr WF 1
  779. .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
  780. .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) \{\
  781. .    if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
  782. .    if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
  783. .    if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
  784. .\}
  785. ..
  786. .    \" FS - begin footnote on cover
  787. .de FS
  788. .ev 1
  789. .br
  790. .ll \\n(FLu
  791. .da FG
  792. .if !\\n(.$ .if \\n* .FP \\n*
  793. .if \\n(.$ .FP \\$1 no
  794. ..
  795. .    \" FE - end footnote on cover
  796. .de FE
  797. .br
  798. .di
  799. .nr FP \\n(dn
  800. .if !\\n(1T .nr KG 1
  801. .ev
  802. ..
  803. .    \" FA - print line before footnotes
  804. .de FA
  805. .in 0
  806. .if n _________________________
  807. .if t \l'1i'
  808. .br
  809. ..
  810. .    \" FP - footnote paragraph
  811. .de FP
  812. .sp \\n(PDu/2u
  813. .if \\n(FF<2 .ti \\n(FIu
  814. .if \\n(FF=3 \{\
  815. .    in \\n(FIu*2u
  816. .    ta \\n(FIu*2u
  817. .    ti 0
  818. .\}
  819. .if !\\n(FF \{\
  820. .    ie "\\$2"no" \\$1\0\c
  821. .    el \\*([.\\$1\\*(.]\0\c
  822. .\}
  823. .if \\n(FF .if \\n(FF<3 \{\
  824. .    ie "\\$2"no" \\$1\0\c
  825. .    el \\$1.\0\c
  826. .\}
  827. .if \\n(FF=3 \{\
  828. .    ie "\\$2"no" \\$1\t\c
  829. .    el \\$1.\t\c
  830. .\}
  831. ..
  832. .    \" FV - get leftover footnote from previous page
  833. .de FV
  834. .FS
  835. .nf
  836. .ls 1
  837. .FY
  838. .ls
  839. .fi
  840. .FE
  841. ..
  842. .    \" FX - divert leftover footnote for next page
  843. .de FX
  844. .if \\n(XX .di FY
  845. .if \\n(XX .ns
  846. ..
  847. .    \" XF - actually print footnote
  848. .de XF
  849. .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
  850. .ev 1
  851. .nf
  852. .ls 1
  853. .FF
  854. .rm FF
  855. .nr XX 0 1
  856. .br
  857. .ls
  858. .di
  859. .fi
  860. .ev
  861. ..
  862. .de IS  \"    ideal picture
  863. .nr g7 \\n(.u
  864. .ls 1
  865. ..
  866. .de IE
  867. .if \\n(g7 .fi
  868. .ls
  869. ..
  870. .de IF
  871. .if \\n(g7 .fi
  872. .ls
  873. ..
  874. .de PS    \"     start picture (bwk) $1 is height, $2 is width in units
  875. .if t .sp .3
  876. .in (\\n(.lu-\\$2u)/2u
  877. .ne \\$1u
  878. .nr g7 \\n(.u
  879. .ls 1
  880. ..
  881. .de PE
  882. .in
  883. .if \\n(g7 .fi
  884. .if t .sp .6
  885. .ls
  886. ..
  887. .de GS    \"    GRN called with C (default), L or R  (g1=width, g2=height)
  888. .nr g7 (\\n(.lu-\\n(g1u)/2u
  889. .if "\\$1"L" .nr g7 \\n(.iu
  890. .if "\\$1"R" .nr g7 \\n(.lu-\\n(g1u
  891. .in \\n(g7u
  892. .nr g7 \\n(.u
  893. .ls 1
  894. .nf
  895. .ne \\n(g2u
  896. ..
  897. .de GE
  898. .ls
  899. .in
  900. .if \\n(g7 .fi
  901. .if t .sp .6
  902. ..
  903. .de GF
  904. .ls
  905. .in
  906. .if \\n(g7 .fi
  907. ..
  908. .    \" TS - source file for tbl
  909. .de TS
  910. .rn TS @@T
  911. .so \*(//s.tbl
  912. .TS \\$1 \\$2
  913. .rm @@T
  914. ..
  915. .    \" EQ - source file for eqn
  916. .de EQ
  917. .rn EQ @@T
  918. .so \*(//s.eqn
  919. .EQ \\$1 \\$2
  920. .rm @@T
  921. ..
  922. .    \" ]- - source file for refer
  923. .de ]-
  924. .rn ]- @@T
  925. .so \*(//s.ref
  926. .]-
  927. .rm @@T
  928. ..
  929. .    \" LT and HE - source for letter head
  930. .de LT
  931. .rn LT @@T
  932. .so \*(//s.hed
  933. .LT
  934. .rm @@T
  935. ..
  936. .de HE
  937. .rn HE @@T
  938. .so \*(//s.hed
  939. .HE
  940. .rm @@T
  941. ..
  942. .    \" [< - for refer -s or -e
  943. .de ]<
  944. .rn ]< @@T
  945. .so \*(//s.ref
  946. .]<
  947. .rm @@T
  948. ..
  949. .if \n(.V>19 .ds [. \f1[
  950. .if \n(.V>19 .ds .] ]\fP
  951. .if \n(.V<20 .ds [. \f1\s-2\v'-.4m'
  952. .if \n(.V<20 .ds .] \v'.4m'\s+2\fP
  953. .ds <. .
  954. .ds <, ,
  955. .if n .ds Q \&"
  956. .if n .ds U \&"
  957. .if n .ds - \%--
  958. .if t .ds Q ``
  959. .if t .ds U ''
  960. .if t .ds - \(em
  961. .ds ' \h'\w'e'u/5'\z\'\h'-\w'e'u/5'
  962. .ds ` \h'\w'e'u/5'\z\`\h'-\w'e'u/5'
  963. .ds ^ \h'\w'o'u/10'\z^\h'-\w'o'u/10'
  964. .ds , \h'\w'c'u/5'\z,\h'-\w'c'u/5'
  965. .ds : \h'\w'u'u/5'\u\z.\h'\w'u'u*2/5'\z.\d\h'-\w'u'u*3/5'
  966. .ds ~ \h'\w'n'u/10'\z~\h'-\w'n'u/10'
  967. .ds C \h'\w'c'u/5'\v'-.6m'\s-4\zv\s+4\v'.6m'\h'-\w'c'u/5'
  968. .    \" AM - better accent marks
  969. .de AM
  970. .so \*(//s.acc
  971. ..
  972. .    \" TM - thesis mode
  973. .de TM
  974. .so \*(//s.ths
  975. ..
  976. .    \" BX - word in a box
  977. .de BX
  978. .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
  979. .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
  980. ..
  981. .    \" B1 - source file for boxed text
  982. .de B1
  983. .rn B1 @@T
  984. .so \*(//s.tbl
  985. .B1 \\$1
  986. .rm @@T
  987. ..
  988. .    \" XS - table of contents
  989. .de XS
  990. .rn XS @@T
  991. .so \*(//s.toc
  992. .XS \\$1 \\$2
  993. .rm @@T
  994. ..
  995. .    \" IX - index words to stderr
  996. .de IX
  997. .tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n(PN
  998. ..
  999. .    \" UX - UNIX macro
  1000. .de UX
  1001. .ie \\n(UX \s-1UNIX\s0\\$1
  1002. .el \{\
  1003. \s-1UNIX\s0\\$1\(dg
  1004. .FS
  1005. \(dg \s-1UNIX\s0 is a trademark of Bell Laboratories.
  1006. .FE
  1007. .nr UX 1
  1008. .\}
  1009. ..
  1010. .co
  1011. .if \n(mo-0 .ds MO January
  1012. .if \n(mo-1 .ds MO February
  1013. .if \n(mo-2 .ds MO March
  1014. .if \n(mo-3 .ds MO April
  1015. .if \n(mo-4 .ds MO May
  1016. .if \n(mo-5 .ds MO June
  1017. .if \n(mo-6 .ds MO July
  1018. .if \n(mo-7 .ds MO August
  1019. .if \n(mo-8 .ds MO September
  1020. .if \n(mo-9 .ds MO October
  1021. .if \n(mo-10 .ds MO November
  1022. .if \n(mo-11 .ds MO December
  1023. .ds DY \*(MO \n(dy, 19\n(yr
  1024. .nr * 0 1
  1025. .IZ
  1026. .em EM
  1027. .rm IZ RA //
  1028. @
  1029.  
  1030.  
  1031. 1.1
  1032. log
  1033. @Initial revision
  1034. @
  1035. text
  1036. @d1 1
  1037. a1 1
  1038. .ds // /usr/local/lib/ditmac/
  1039. @
  1040.